//package com.code.refactoring.redis相关.redisson操作;
//
//import lombok.extern.slf4j.Slf4j;
//import org.redisson.api.RLock;
//import org.redisson.api.RedissonClient;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//
///**
// * @author wangxi created on 2021/6/10 00:08
// * @version v1.0
// *
// *
// * redission实现分布式锁，注意，这种方式的锁，
// * 请求1未释放锁或锁为过期，请求2是阻塞的，即请求1释放锁后，请求2才会往后走执行。
// */
//@RestController
//@Slf4j
//public class RedisLockController {
//
//    @Resource
//    private RedissonClient redissonClient;
//
//    @ResponseBody
//    @GetMapping("test-lock")
//    public String TestLock() {
//        // 1.获取锁，只要锁的名字一样，获取到的锁就是同一把锁。
//        RLock lock = redissonClient.getLock("wx-lock");
//
//        // 2.加锁
//        // 默认超时时间时间是30s，也可以自己设置时间
//        lock.lock();
//        try {
//            log.info("加锁成功，执行后续代码。线程 ID：" + Thread.currentThread().getId());
//            Thread.sleep(5000);
//        } catch (Exception e) {
//            //TODO
//        } finally {
//            lock.unlock();
//            // 3.解锁
//            log.info("Finally，释放锁成功。线程 ID：" + Thread.currentThread().getId());
//        }
//
//        return "test lock ok";
//    }
//}
